iT邦幫忙

1

C# 產生 EXCEL 的第三方套件評估

c#
  • 分享至 

  • xImage
  •  

C# 產生 EXCEL 的第三方套件評估

標題 Microsoft.Office.Interop.Excel NPOI EPPlus ClosedXml
描述 This an assembly you can use for Excel 2013/2016/2019 COM interop, generated and signed by Microsoft. a .NET library that can read/write Office formats without Microsoft Office installed. No COM+, no interop. EPPlus is a .net library that reads and writes Excel 2007/2010 files using the Open Office Xml format (xlsx). ClosedXML is a .NET library for reading, manipulating and writing Excel 2007+ (.xlsx, .xlsm) files. It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API.
官網 官網 官網 官網 官網
依賴性 需要安裝 Microsoft Office 無依賴性 無依賴性 無依賴性
性能 最慢 速度快 速度快 速度慢,ClosedXML可能不適合大量資料,存檔時間也是另外一個問題,我測試產生500頁A4(大約2萬多Rows)光存檔就花了200秒以上
共享性 最差,因官方Office 於設計時被定義為個人軟體,所以該Library對於多人同時操作與共享的支援性較差,對於一個Web Service而言,容易造成Excel程序無法被正確釋放,Server的記憶體被大量占用,進而導致Server的不穩定。 不支援大資料量以及多sheet的匯出 最佳,可大量資料操作且吃記憶體較小 記憶體使用量較高,30欄位 x 10萬筆資料的 excel 在過程中,closedxml 用了約1G的記憶體,epplus 卻不到 400M
兼容性 差,不同的office版本之間可能會有兼容問題 NPOI目前支援.xls與.xlsx,但是兩種格式的文件於NPOI內部的元件設計並不相同。若開發的系統欲同時支援兩種格式,則必須撰寫兩份不同的程式碼來進行文件的產出。 僅支援.xlsx的格式,不支援2003版的Excel 最佳,檔案相容性測試又比NPOI及EPPlus好
商業授權 需要購買 Microsoft Office 商用需NPOI 付費授權 EPPlus5.0以上版本要商業授權碼 MIT 授權

結論:

目前最佳免費方案是 EPPlus 4.5.3

基礎的編輯 4.X 完全可勝任。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
alien663
iT邦研究生 3 級 ‧ 2023-01-16 15:51:59

日前因為有需要用到,研究了一下關於NPOI的部分,在此補充,若有誤煩請指正。

1. License

在github中有寫明是Apache License以及Commercial use,商業用途應該是不用另外付錢的。

NPOI License

Apache License

2. 多個Sheet

我自己寫的Component中,一個excel是可以匯出多個sheet的,我自己是使用C#的DataSet格式做處理,至於大資料量我並沒有研究,因此不甚了解。

my excel component on github

我要留言

立即登入留言